home *** CD-ROM | disk | FTP | other *** search
/ Plug-In Power Pack for Netscape Communicator / Plug-In Power Pack for Netscape Communicator.iso / plugins / dataviews / dvtools / demos / telecomdemo / msg_log.c < prev    next >
C/C++ Source or Header  |  1997-05-08  |  4KB  |  167 lines

  1. #ifndef lint
  2. static char SccsId[]= "@(#)msg_log.c    V1.6    3/17/95";
  3. #endif
  4.  
  5. /*
  6.  |    File name: message.c
  7.  |========================================================================
  8.  |
  9.  |    Copyright (c) 1990 -- V.I. Corporation
  10.  |
  11.  |========================================================================
  12.  */
  13.  
  14. #include "simulate.h"
  15. #include "tlc_fundecl.h"
  16.  
  17.  
  18. /*
  19.  *   Define the normal input mask for this screen.
  20.  */
  21.  
  22. #ifdef WINNT
  23. #define NORMAL_MASK  ( (ULONG)V_BUTTONPRESS | V_BUTTONRELEASE | V_KEYPRESS | \
  24.                                V_WINDOW_QUIT | V_EXPOSE | V_RESIZE )
  25.  
  26. #else  /* Not WINNT */
  27. #define NORMAL_MASK  ( (ULONG)V_EXPOSE | V_RESIZE  )
  28.  
  29. #endif /* WINNT */
  30.  
  31.  
  32. #define DEF_COLORTABLE    (ADDRESS)NULL
  33.  
  34. #define LIST_SIZE    5
  35. LOCAL DRAWPORT LogDp;
  36. LOCAL OBJECT LogObj[LIST_SIZE];
  37. LOCAL INT LogCnt = 0;
  38. LOCAL DV_BOOL LogScrolling = NO;
  39.  
  40. /*
  41.  *   CreateLogScreen -- create the status screen and setup the event mask.
  42.  */
  43. void CreateLogScreen 
  44. V_P_ ((void))
  45. {
  46.   VIEW view;
  47.   OBJECT drawing, area;
  48.   RECTANGLE area_vp, dummy;
  49.   CHAR obj_name[5];
  50.   INT i;
  51.  
  52. #ifdef WINNT 
  53.   LogScreen = TscOpenSet( "W", DEF_COLORTABLE,
  54.              V_WIN32_ICON_NAME,       "teleicon",
  55.              V_WINDOW_HEIGHT,        120,
  56.              V_WINDOW_WIDTH,          550,
  57.              V_WINDOW_X,              240,
  58.              V_WINDOW_Y,              453,
  59. #ifdef DOUBLE_BUFFER
  60.              V_WIN32_DOUBLE_BUFFER,   YES,
  61. #endif /* DOUBLE_BUFFER */
  62.              V_WINDOW_NAME,           "Network Log",
  63.              V_INITIAL_CURSOR,
  64.              V_END_OF_LIST );
  65. #else  /* Not WINNT */  
  66.   LogScreen = TscOpenSet(NULL, DEF_COLORTABLE,
  67.              V_WINDOW_HEIGHT, 150,
  68.              V_WINDOW_WIDTH, 650,
  69.              V_WINDOW_X, 450,
  70.              V_WINDOW_Y, 700,
  71.              V_X_EXPOSURE_BLOCK, YES,
  72.              V_WINDOW_NAME, "Network Log",
  73.              V_INITIAL_CURSOR,
  74.              V_END_OF_LIST);
  75. #endif /* WINNT */
  76.  
  77.  
  78.   (VOID) VOscWinEventMask ((ULONG) NORMAL_MASK, 0L);
  79.  
  80.   view = TviLoad (MsgLogViewName);
  81.  
  82.   EXIT_IF_INVALID (view,
  83.                    "\nAborted: Log View can't be loaded.\n");
  84.  
  85.   drawing = TviGetDrawing (view);
  86.  
  87.   area = TdrGetNamedObject (drawing, "area");
  88.   VOobBox (area, &area_vp, &dummy);
  89.  
  90.   LogDp = TdpCreateStretch (LogScreen, view, NULL, &area_vp);
  91.  
  92.   for (i = 0; i < LIST_SIZE; i++)
  93.     {
  94.       sprintf (obj_name, "%d", i);
  95.       LogObj[i] = TdrGetNamedObject (drawing, obj_name);
  96.       VOtxSetString (LogObj[i], "");
  97.     }
  98.  
  99.   TdpDraw (LogDp);
  100. }
  101.  
  102. void 
  103. OutputLog (msg)
  104.      char *msg;
  105. {
  106.   INT i;
  107.  
  108.   if (LogScrolling)
  109.     {
  110.       for (i = 0; i < LIST_SIZE - 1; i++)
  111.         {
  112.           TdpEraseObject (LogDp, LogObj[i]);
  113.           VOtxSetString (LogObj[i], VOtxGetString (LogObj[i + 1]));
  114.           TdpDrawObject (LogDp, LogObj[i]);
  115.         }
  116.       TdpEraseObject (LogDp, LogObj[i]);
  117.       VOtxSetString (LogObj[i], msg);
  118.       TdpDrawObject (LogDp, LogObj[i]);
  119.     }
  120.   else
  121.     {
  122.       VOtxSetString (LogObj[LogCnt], msg);
  123.       TdpDrawObject (LogDp, LogObj[LogCnt]);
  124.       LogCnt++;
  125.       if (LogCnt == LIST_SIZE)
  126.         LogScrolling = YES;
  127.     }
  128. }
  129.  
  130. /*
  131.  *   DestroyLogScreen -- called at program termination.  Destroy all
  132.  *     drawports associated with this screen, then close the window.
  133.  */
  134. void DestroyLogScreen 
  135. V_P_ ((void))
  136. {
  137.   (VOID) TscSetCurrentScreen (LogScreen);
  138.   (VOID) TdpDestroy (LogDp);
  139.   (VOID) TscClose (LogScreen);
  140. }
  141.  
  142.  
  143. /*
  144.  *   HandleLogInput -- deal with input to the status window.  Deal with
  145.  *     window events.
  146.  */
  147. void 
  148. HandleLogInput (location)
  149.      OBJECT location;
  150. {
  151.  
  152.   switch (VOloType (location))
  153.     {
  154.       /*
  155.        *   Deal with window system events.
  156.        */
  157.     case V_EXPOSE:
  158.       TscRedraw (LogScreen, VOloRegion (location));
  159.       break;
  160.     case V_RESIZE:
  161.       TscReset (LogScreen);
  162.       break;
  163.     default:
  164.       break;
  165.     }
  166. }
  167.